package nu.mine.tbje.easyEDT;


import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;


import org.apache.shale.view.AbstractViewController;

/***
 * Utilise le phaselistener pour detecter un demande à la page logout.faces 
 * Si cette demande est detecté, invalider le session et envoyer l'utilisateur à la page de login
 * @author Tbje
 *
 */	 
public class ConfigListener extends AbstractViewController implements PhaseListener {
	 
	private static final long serialVersionUID = -2857098103687413790L;

	public PhaseId getPhaseId() {
		return PhaseId.RESTORE_VIEW;
	}

	public void beforePhase(PhaseEvent event) {
		

	}

	public void afterPhase(PhaseEvent event) {
		FacesContext fc = event.getFacesContext();
		String id = ((HttpServletRequest)fc.getExternalContext().getRequest()).getParameter("id");
		NavigationHandler nh = fc.getApplication().getNavigationHandler();
		String path = fc.getExternalContext().getRequestServletPath().toString();
        if (path.lastIndexOf("config.faces") == -1) {
        	if (id == null) {
        		Cookie cookie = (Cookie)fc.getExternalContext().getRequestCookieMap().get("groupeId");
        		if (cookie == null) {
        			nh.handleNavigation(fc, null, "config");
        		}
        	}
        }
	}
}
